'''
Author       : Xu Dakang
Email        : XudaKang_up@qq.com
Date         : 2021-11-21 22:20:05
LastEditors  : Xu Dakang
LastEditTime : 2022-01-08 19:04:41
Filename     :
Description  :
'''

# %%
def getHexDataOfCanId(file_path: str, can_id: str, encoding: str = 'GB2312') -> list:
    '''
    函数功能：读取Cantest保存的帧数据文件，根据can_id筛选数据，输出长度为16的16进制字符串
    输入参数1：file_path，CAN数据文件路径
    输入参数2：can_id，只有此id的数据会被提取
    输入参数3：encoding，读取文件的编码
    输出：输出长度为16的16进制字符串组成的列表
    '''
    hexdata_list = []
    fi = open(file_path, 'r', encoding = encoding)
    for line in fi:
        if (can_id in line):
            line = line.strip().replace(' ', '')[-16:]  # 去掉字符串首尾换行符合空格和字符串中的空格
            line = (line[14:16] + line[12:14] + line[10:12] + line[8:10]
                    + line[6:8] + line[4:6] + line[2:4] + line[0:2])
            hexdata_list.append(line)
    fi.close()
    return hexdata_list